import 'package:flutter/widgets.dart';
import 'package:flutter/material.dart';
class ThemeTest extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return _ThemeTest();
  }
}

class _ThemeTest extends State<ThemeTest> {
  MaterialColor _themeColor = Colors.teal; //当前路由主题色

  @override
  Widget build(BuildContext context) {
    ThemeData themeData = Theme.of(context);
    return Theme(
        data: ThemeData(
            primarySwatch: _themeColor,
            iconTheme: IconThemeData(color: _themeColor)),
        child: Scaffold(
          appBar: AppBar(
            title: Text("主题测试"),
            centerTitle: true,
          ),
          body: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              //第一行Icon使用主题中的iconTheme
              Row(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Icon(Icons.favorite),
                    Icon(Icons.airport_shuttle),
                    Text("  颜色跟随主题")
                  ]),
              //为第二行Icon自定义颜色（固定为黑色)
              Theme(
                data: themeData.copyWith(
                  iconTheme: themeData.iconTheme.copyWith(color: Colors.black),
                ),
                child: Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: <Widget>[
                      Icon(Icons.favorite),
                      Icon(Icons.airport_shuttle),
                      Text("  颜色固定黑色")
                    ]),
              ),
            ],
          ),
          floatingActionButton: FloatingActionButton(
              onPressed: () =>  //切换主题
              setState(() =>
              _themeColor =
              _themeColor == Colors.teal ? Colors.blue : Colors.teal
              ),
              child: Icon(Icons.palette)
          ),
        ));
  }
}
